<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>traj_gen: include/traj_gen/PolyTrajGen.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">traj_gen
   &#160;<span id="projectnumber">2.0</span>
   </div>
   <div id="projectbrief">trajectory generation module</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_df772eb23b68b88c9b346aed8a0730e0.html">traj_gen</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">PolyTrajGen.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_poly_traj_gen_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// Created by jbs on 18. 7. 23.</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#ifndef TRAJ_GEN_POLYTRAJGEN_H</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#define TRAJ_GEN_POLYTRAJGEN_H</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;ros/ros.h&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;geometry_msgs/Twist.h&gt;</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;geometry_msgs/PoseStamped.h&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;visualization_msgs/MarkerArray.h&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;nav_msgs/Path.h&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;eigen3/Eigen/Core&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;eigen3/Eigen/Dense&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;eigen3/Eigen/SparseCore&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;chrono&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_poly_spline_x_y_z_8h.html">traj_gen/PolySplineXYZ.h</a>&quot;</span> <span class="comment">// msg tyype </span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;qpOASES.hpp&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespace_eigen.html">Eigen</a>;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacestd.html">std</a>;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacegeometry__msgs.html">geometry_msgs</a>;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacetraj__gen.html">traj_gen</a>;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="_poly_traj_gen_8h.html#a37d0493e73d8ef72a2405596ad6cee0c">   30</a></span>&#160;<span class="keyword">typedef</span> VectorXd <a class="code" href="_poly_traj_gen_8h.html#a37d0493e73d8ef72a2405596ad6cee0c">TimeSeries</a>;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;VectorXd <a class="code" href="_poly_traj_gen_8h.html#ace410f7685911e2ddd63a13be165c522">t_vec</a>(<span class="keywordtype">int</span> poly_order ,<span class="keywordtype">double</span> time ,<span class="keywordtype">int</span> n_diff);</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <span class="comment">/*</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="comment">    * scailing matrix D : p(t)=p&#39;D t_vec(tau) where t1&lt;=t&lt;=t2 , 0&lt;=tau&lt;=1</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="comment">    */</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;MatrixXd <a class="code" href="_poly_traj_gen_8h.html#a5a2e38cc8bf6ae9ab0395994b68e52ae">time_scailing_mat</a>(<span class="keywordtype">double</span> dt,<span class="keywordtype">int</span> poly_order); <span class="comment">// consider using sparse matrix</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="comment">/*</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment">    *  integral t_vec(n,tau,3)*t_vec(n,tau,3)&#39; from 0 to 1</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment">    */</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;MatrixXd <a class="code" href="_poly_traj_gen_8h.html#a0b792e87b38c7882b087726a82eaa72e">integral_jerk_squared</a>(<span class="keywordtype">int</span> poly_order);</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;MatrixXd <a class="code" href="_poly_traj_gen_8h.html#a98c8e48d65c22d6da6b6b82242586f15">integral_snap_squared</a>(<span class="keywordtype">int</span> poly_order);</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment">// find belonging time interval in time series</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="keywordtype">int</span> <a class="code" href="_poly_traj_gen_8h.html#ad5edaf0e8427ca63e44408bdbb37d7b0">find_spline_interval</a>(<span class="keyword">const</span> vector&lt;double&gt;&amp; knots,<span class="keywordtype">double</span> eval_t);</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment">// append mat_sub to mat in the row </span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="keywordtype">void</span> <a class="code" href="_poly_traj_gen_8h.html#a2fbc0abee53f736fe5f5d2a5c04ec723">row_append</a>(MatrixXd &amp; mat,MatrixXd mat_sub);</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="comment">// trajectory solving mode (referred to README.md)</span></div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_traj_gen_opts.html">   63</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_traj_gen_opts.html">TrajGenOpts</a>{</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_traj_gen_opts.html#ad8937f645e1154dc52978bd6592ce836">   65</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="struct_traj_gen_opts.html#ad8937f645e1154dc52978bd6592ce836">objective_derivative</a>; <span class="comment">// jerk minimization = 3 , snap minimization = 4</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_traj_gen_opts.html#a5f27ab3f06720accfeaf88d44da2c5d6">   67</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="struct_traj_gen_opts.html#a5f27ab3f06720accfeaf88d44da2c5d6">is_waypoint_soft</a>;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_traj_gen_opts.html#a7424679070ea7264f7c8b6df5461bdb9">   68</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="struct_traj_gen_opts.html#a7424679070ea7264f7c8b6df5461bdb9">w_d</a>; <span class="comment">// weight for deviation</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_traj_gen_opts.html#ad4725655d38467206ed000eacfd6c54a">   70</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="struct_traj_gen_opts.html#ad4725655d38467206ed000eacfd6c54a">is_single_corridor</a>;  </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_traj_gen_opts.html#a7ba33a57327fba375f137f1f0104c1ea">   71</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="struct_traj_gen_opts.html#a7ba33a57327fba375f137f1f0104c1ea">is_multi_corridor</a>;  </div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_traj_gen_opts.html#a538985230ef4a8cd7763c91d11bebbaf">   73</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="struct_traj_gen_opts.html#a538985230ef4a8cd7763c91d11bebbaf">poly_order</a>;</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="comment">// In case of parallel corridor = true the followings are required</span></div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_traj_gen_opts.html#aba857cb0ae86cbac99ba5adf9320c66d">   75</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="struct_traj_gen_opts.html#aba857cb0ae86cbac99ba5adf9320c66d">safe_r</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="struct_traj_gen_opts.html#a216fe9912362cc5e876f945112811c35">   76</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="struct_traj_gen_opts.html#a216fe9912362cc5e876f945112811c35">N_safe_pnts</a>;   </div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_traj_gen_opts.html#ab4888a8e142d514867bb3dfacb84e3d2">   78</a></span>&#160;    <span class="keywordtype">bool</span> verbose = <span class="keyword">true</span>; <span class="comment">// print the optimization matrices </span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;};</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_constraint.html">   82</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_constraint.html">Constraint</a>{</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_constraint.html#a95639f38cb8a18c60a96e629160a9571">   84</a></span>&#160;    MatrixXd <a class="code" href="struct_constraint.html#a95639f38cb8a18c60a96e629160a9571">A</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_constraint.html#ab22b0463922cee8c89b0443ed611d072">   85</a></span>&#160;    MatrixXd <a class="code" href="struct_constraint.html#ab22b0463922cee8c89b0443ed611d072">b</a>;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="struct_q_p__form.html">   89</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_q_p__form.html">QP_form</a>{</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_q_p__form.html#a5613317ae662dd137324ee52ca52b1ae">   90</a></span>&#160;    MatrixXd <a class="code" href="struct_q_p__form.html#a5613317ae662dd137324ee52ca52b1ae">Q</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_q_p__form.html#ac8ff933f268484b2f78b77ffc056f11d">   91</a></span>&#160;    MatrixXd <a class="code" href="struct_q_p__form.html#ac8ff933f268484b2f78b77ffc056f11d">H</a>;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_q_p__form.html#afeb66f78f73f929e99f6f8afcfcc17b1">   92</a></span>&#160;    MatrixXd <a class="code" href="struct_q_p__form.html#afeb66f78f73f929e99f6f8afcfcc17b1">A</a>;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="struct_q_p__form.html#a949cd1a76929ca7aeb61c8955da4a1a2">   93</a></span>&#160;    MatrixXd <a class="code" href="struct_q_p__form.html#a949cd1a76929ca7aeb61c8955da4a1a2">b</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_q_p__form.html#af0fab4bf47d9b4a2598445bd11f446e0">   94</a></span>&#160;    MatrixXd <a class="code" href="struct_q_p__form.html#af0fab4bf47d9b4a2598445bd11f446e0">Aeq</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_q_p__form.html#a3671f01cebe0e9acdb6ce105b6eff780">   95</a></span>&#160;    MatrixXd <a class="code" href="struct_q_p__form.html#a3671f01cebe0e9acdb6ce105b6eff780">beq</a>;    </div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;};</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_q_p__form__xyz.html">   98</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_q_p__form__xyz.html">QP_form_xyz</a>{</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_q_p__form__xyz.html#a3a6e7a104ef31fda66007013ba3741f8">  100</a></span>&#160;    <a class="code" href="struct_q_p__form.html">QP_form</a> <a class="code" href="struct_q_p__form__xyz.html#a3a6e7a104ef31fda66007013ba3741f8">x</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_q_p__form__xyz.html#a3e1c8fbfd5a4650fb45fc0ca14c2bcb6">  101</a></span>&#160;    <a class="code" href="struct_q_p__form.html">QP_form</a> <a class="code" href="struct_q_p__form__xyz.html#a3e1c8fbfd5a4650fb45fc0ca14c2bcb6">y</a>;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="struct_q_p__form__xyz.html#a243478dd3ac49ecf0d6fceffbcdf408b">  102</a></span>&#160;    <a class="code" href="struct_q_p__form.html">QP_form</a> <a class="code" href="struct_q_p__form__xyz.html#a243478dd3ac49ecf0d6fceffbcdf408b">z</a>;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;};</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="class_path_planner.html">  106</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_path_planner.html">PathPlanner</a>{</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keyword">private</span>:</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        <span class="keywordtype">bool</span> is_path_computed;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        <span class="keywordtype">bool</span> is_this_verbose = <span class="keyword">true</span>; </div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        nav_msgs::Path current_path; <span class="comment">// latest path from optimization for entire horizon </span></div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        <a class="code" href="structtraj__gen_1_1_poly_spline_x_y_z__.html">traj_gen::PolySplineXYZ</a> spline_xyz; <span class="comment">// the coefficient of this polynomials </span></div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        </div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        visualization_msgs::Marker safe_corridor_marker; </div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        visualization_msgs::Marker safe_corridor_marker_single_base;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        visualization_msgs::MarkerArray safe_corridor_marker_single_array; <span class="comment">// in case of single corridor, marker array will be activated  </span></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        visualization_msgs::Marker knots_marker; <span class="comment">// knots marker (the actual point at th knot time)</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <span class="comment">// sub routine </span></div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        Affine3f get_affine_corridor(Point p1,Point p2); <span class="comment">// one affine corridor            </span></div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keyword">public</span>: </div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        <span class="comment">// constructor</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        <a class="code" href="class_path_planner.html">PathPlanner</a>();</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="class_path_planner.html#a58b48f13a0beefa08e584040d4e29bae">  123</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="class_path_planner.html#a58b48f13a0beefa08e584040d4e29bae">is_spline_valid</a>() {<span class="keywordflow">return</span> spline_xyz.<a class="code" href="structtraj__gen_1_1_poly_spline_x_y_z__.html#a372cfda50d7d422fa234a2f8ebec21ee">is_valid</a>;};        </div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        <span class="comment">// update spline and current path </span></div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        <span class="keywordtype">void</span> path_gen(<span class="keyword">const</span> <a class="code" href="_poly_traj_gen_8h.html#a37d0493e73d8ef72a2405596ad6cee0c">TimeSeries</a>&amp; knots ,<span class="keyword">const</span> nav_msgs::Path&amp; waypoints,<span class="keyword">const</span> geometry_msgs::Twist&amp; v0,<span class="keyword">const</span> geometry_msgs::Twist&amp; a0,<a class="code" href="struct_traj_gen_opts.html">TrajGenOpts</a> opt );</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        <a class="code" href="struct_q_p__form__xyz.html">QP_form_xyz</a> qp_gen(<span class="keyword">const</span> <a class="code" href="_poly_traj_gen_8h.html#a37d0493e73d8ef72a2405596ad6cee0c">TimeSeries</a>&amp; knots ,<span class="keyword">const</span> nav_msgs::Path&amp; waypoints,<span class="keyword">const</span> geometry_msgs::Twist&amp; v0,<span class="keyword">const</span> geometry_msgs::Twist&amp; a0,<a class="code" href="struct_traj_gen_opts.html">TrajGenOpts</a> opt );</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="class_path_planner.html#a36d08d3831066c76be5195ed99fa1f68">  127</a></span>&#160;        nav_msgs::Path <a class="code" href="class_path_planner.html#a36d08d3831066c76be5195ed99fa1f68">get_path</a>() {<span class="keywordflow">return</span> current_path;}</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        <span class="comment">// evaluate at a time horizon </span></div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        <span class="keywordtype">void</span> horizon_eval_spline(<span class="keywordtype">int</span> N_eval_interval);</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        nav_msgs::Path sub_horizon_eval_spline(<span class="keywordtype">int</span> N_eval_interval,<span class="keywordtype">double</span> t_start,<span class="keywordtype">double</span> t_final);        </div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="class_path_planner.html#aadd23ca1fbe79abb2a6fc6983fb3f639">  131</a></span>&#160;        visualization_msgs::Marker <a class="code" href="class_path_planner.html#aadd23ca1fbe79abb2a6fc6983fb3f639">get_safe_corridor_marker</a>(){<span class="keywordflow">return</span> safe_corridor_marker;}</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="class_path_planner.html#a5d4db201bdb6b20bf6a9a46a15c354e2">  132</a></span>&#160;        visualization_msgs::MarkerArray <a class="code" href="class_path_planner.html#a5d4db201bdb6b20bf6a9a46a15c354e2">get_safe_corridor_single_marker</a>(){<span class="keywordflow">return</span> safe_corridor_marker_single_array;}</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        visualization_msgs::Marker get_knots_marker();</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        <span class="comment">// evaluate at a time</span></div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        Point point_eval_spline(<span class="keywordtype">double</span> t_eval);</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        Twist vel_eval_spline(<span class="keywordtype">double</span> t_eval);</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        Twist accel_eval_spline(<span class="keywordtype">double</span> t_eval);</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        <span class="comment">// ros data retrieving from path update </span></div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <span class="comment">// sub routine </span></div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        <a class="code" href="class_poly_spline.html">PolySpline</a> get_solution(VectorXd sol,<span class="keywordtype">int</span> poly_order,<span class="keywordtype">int</span> n_seg );        </div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        VectorXd solveqp(<a class="code" href="struct_q_p__form.html">QP_form</a> qp_prob,<span class="keywordtype">bool</span>&amp; is_ok);</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        <a class="code" href="struct_constraint.html">Constraint</a> get_init_constraint_mat(<span class="keywordtype">double</span> x0, <span class="keywordtype">double</span> v0, <span class="keywordtype">double</span> a0,<a class="code" href="struct_traj_gen_opts.html">TrajGenOpts</a> option); <span class="comment">// up to 2nd order conditions </span></div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        <a class="code" href="struct_constraint.html">Constraint</a> get_continuity_constraint_mat(<span class="keywordtype">double</span> dt1,<span class="keywordtype">double</span> dt2,<a class="code" href="struct_traj_gen_opts.html">TrajGenOpts</a> option); <span class="comment">// up to 2nd order continuity </span></div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;};</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<span class="preprocessor">#endif //TRAJ_GEN_POLYTRAJGEN_H</span></div><div class="ttc" id="_poly_spline_x_y_z_8h_html"><div class="ttname"><a href="_poly_spline_x_y_z_8h.html">PolySplineXYZ.h</a></div></div>
<div class="ttc" id="struct_q_p__form__xyz_html_a243478dd3ac49ecf0d6fceffbcdf408b"><div class="ttname"><a href="struct_q_p__form__xyz.html#a243478dd3ac49ecf0d6fceffbcdf408b">QP_form_xyz::z</a></div><div class="ttdeci">QP_form z</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00102">PolyTrajGen.h:102</a></div></div>
<div class="ttc" id="struct_q_p__form_html_a3671f01cebe0e9acdb6ce105b6eff780"><div class="ttname"><a href="struct_q_p__form.html#a3671f01cebe0e9acdb6ce105b6eff780">QP_form::beq</a></div><div class="ttdeci">MatrixXd beq</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00095">PolyTrajGen.h:95</a></div></div>
<div class="ttc" id="struct_traj_gen_opts_html"><div class="ttname"><a href="struct_traj_gen_opts.html">TrajGenOpts</a></div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00063">PolyTrajGen.h:63</a></div></div>
<div class="ttc" id="struct_constraint_html"><div class="ttname"><a href="struct_constraint.html">Constraint</a></div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00082">PolyTrajGen.h:82</a></div></div>
<div class="ttc" id="struct_q_p__form__xyz_html_a3e1c8fbfd5a4650fb45fc0ca14c2bcb6"><div class="ttname"><a href="struct_q_p__form__xyz.html#a3e1c8fbfd5a4650fb45fc0ca14c2bcb6">QP_form_xyz::y</a></div><div class="ttdeci">QP_form y</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00101">PolyTrajGen.h:101</a></div></div>
<div class="ttc" id="_poly_traj_gen_8h_html_ad5edaf0e8427ca63e44408bdbb37d7b0"><div class="ttname"><a href="_poly_traj_gen_8h.html#ad5edaf0e8427ca63e44408bdbb37d7b0">find_spline_interval</a></div><div class="ttdeci">int find_spline_interval(const vector&lt; double &gt; &amp;knots, double eval_t)</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8cpp_source.html#l00855">PolyTrajGen.cpp:855</a></div></div>
<div class="ttc" id="struct_q_p__form__xyz_html"><div class="ttname"><a href="struct_q_p__form__xyz.html">QP_form_xyz</a></div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00098">PolyTrajGen.h:98</a></div></div>
<div class="ttc" id="_poly_traj_gen_8h_html_a2fbc0abee53f736fe5f5d2a5c04ec723"><div class="ttname"><a href="_poly_traj_gen_8h.html#a2fbc0abee53f736fe5f5d2a5c04ec723">row_append</a></div><div class="ttdeci">void row_append(MatrixXd &amp;mat, MatrixXd mat_sub)</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8cpp_source.html#l00846">PolyTrajGen.cpp:846</a></div></div>
<div class="ttc" id="struct_q_p__form_html_af0fab4bf47d9b4a2598445bd11f446e0"><div class="ttname"><a href="struct_q_p__form.html#af0fab4bf47d9b4a2598445bd11f446e0">QP_form::Aeq</a></div><div class="ttdeci">MatrixXd Aeq</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00094">PolyTrajGen.h:94</a></div></div>
<div class="ttc" id="struct_q_p__form_html"><div class="ttname"><a href="struct_q_p__form.html">QP_form</a></div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00089">PolyTrajGen.h:89</a></div></div>
<div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div></div>
<div class="ttc" id="class_path_planner_html"><div class="ttname"><a href="class_path_planner.html">PathPlanner</a></div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00106">PolyTrajGen.h:106</a></div></div>
<div class="ttc" id="struct_traj_gen_opts_html_aba857cb0ae86cbac99ba5adf9320c66d"><div class="ttname"><a href="struct_traj_gen_opts.html#aba857cb0ae86cbac99ba5adf9320c66d">TrajGenOpts::safe_r</a></div><div class="ttdeci">double safe_r</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00075">PolyTrajGen.h:75</a></div></div>
<div class="ttc" id="_poly_traj_gen_8h_html_ace410f7685911e2ddd63a13be165c522"><div class="ttname"><a href="_poly_traj_gen_8h.html#ace410f7685911e2ddd63a13be165c522">t_vec</a></div><div class="ttdeci">VectorXd t_vec(int poly_order, double time, int n_diff)</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8cpp_source.html#l00784">PolyTrajGen.cpp:784</a></div></div>
<div class="ttc" id="namespacetraj__gen_html"><div class="ttname"><a href="namespacetraj__gen.html">traj_gen</a></div><div class="ttdef"><b>Definition:</b> <a href="_poly_coeff_8h_source.html#l00019">PolyCoeff.h:19</a></div></div>
<div class="ttc" id="class_path_planner_html_aadd23ca1fbe79abb2a6fc6983fb3f639"><div class="ttname"><a href="class_path_planner.html#aadd23ca1fbe79abb2a6fc6983fb3f639">PathPlanner::get_safe_corridor_marker</a></div><div class="ttdeci">visualization_msgs::Marker get_safe_corridor_marker()</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00131">PolyTrajGen.h:131</a></div></div>
<div class="ttc" id="namespace_eigen_html"><div class="ttname"><a href="namespace_eigen.html">Eigen</a></div></div>
<div class="ttc" id="struct_constraint_html_a95639f38cb8a18c60a96e629160a9571"><div class="ttname"><a href="struct_constraint.html#a95639f38cb8a18c60a96e629160a9571">Constraint::A</a></div><div class="ttdeci">MatrixXd A</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00084">PolyTrajGen.h:84</a></div></div>
<div class="ttc" id="class_path_planner_html_a58b48f13a0beefa08e584040d4e29bae"><div class="ttname"><a href="class_path_planner.html#a58b48f13a0beefa08e584040d4e29bae">PathPlanner::is_spline_valid</a></div><div class="ttdeci">bool is_spline_valid()</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00123">PolyTrajGen.h:123</a></div></div>
<div class="ttc" id="structtraj__gen_1_1_poly_spline_x_y_z___html_a372cfda50d7d422fa234a2f8ebec21ee"><div class="ttname"><a href="structtraj__gen_1_1_poly_spline_x_y_z__.html#a372cfda50d7d422fa234a2f8ebec21ee">traj_gen::PolySplineXYZ_::is_valid</a></div><div class="ttdeci">_is_valid_type is_valid</div><div class="ttdef"><b>Definition:</b> <a href="_poly_spline_x_y_z_8h_source.html#l00052">PolySplineXYZ.h:52</a></div></div>
<div class="ttc" id="struct_q_p__form_html_ac8ff933f268484b2f78b77ffc056f11d"><div class="ttname"><a href="struct_q_p__form.html#ac8ff933f268484b2f78b77ffc056f11d">QP_form::H</a></div><div class="ttdeci">MatrixXd H</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00091">PolyTrajGen.h:91</a></div></div>
<div class="ttc" id="_poly_traj_gen_8h_html_a5a2e38cc8bf6ae9ab0395994b68e52ae"><div class="ttname"><a href="_poly_traj_gen_8h.html#a5a2e38cc8bf6ae9ab0395994b68e52ae">time_scailing_mat</a></div><div class="ttdeci">MatrixXd time_scailing_mat(double dt, int poly_order)</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8cpp_source.html#l00774">PolyTrajGen.cpp:774</a></div></div>
<div class="ttc" id="struct_traj_gen_opts_html_a7ba33a57327fba375f137f1f0104c1ea"><div class="ttname"><a href="struct_traj_gen_opts.html#a7ba33a57327fba375f137f1f0104c1ea">TrajGenOpts::is_multi_corridor</a></div><div class="ttdeci">bool is_multi_corridor</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00071">PolyTrajGen.h:71</a></div></div>
<div class="ttc" id="_poly_traj_gen_8h_html_a0b792e87b38c7882b087726a82eaa72e"><div class="ttname"><a href="_poly_traj_gen_8h.html#a0b792e87b38c7882b087726a82eaa72e">integral_jerk_squared</a></div><div class="ttdeci">MatrixXd integral_jerk_squared(int poly_order)</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8cpp_source.html#l00812">PolyTrajGen.cpp:812</a></div></div>
<div class="ttc" id="namespacegeometry__msgs_html"><div class="ttname"><a href="namespacegeometry__msgs.html">geometry_msgs</a></div></div>
<div class="ttc" id="struct_q_p__form_html_a949cd1a76929ca7aeb61c8955da4a1a2"><div class="ttname"><a href="struct_q_p__form.html#a949cd1a76929ca7aeb61c8955da4a1a2">QP_form::b</a></div><div class="ttdeci">MatrixXd b</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00093">PolyTrajGen.h:93</a></div></div>
<div class="ttc" id="class_path_planner_html_a5d4db201bdb6b20bf6a9a46a15c354e2"><div class="ttname"><a href="class_path_planner.html#a5d4db201bdb6b20bf6a9a46a15c354e2">PathPlanner::get_safe_corridor_single_marker</a></div><div class="ttdeci">visualization_msgs::MarkerArray get_safe_corridor_single_marker()</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00132">PolyTrajGen.h:132</a></div></div>
<div class="ttc" id="_poly_traj_gen_8h_html_a98c8e48d65c22d6da6b6b82242586f15"><div class="ttname"><a href="_poly_traj_gen_8h.html#a98c8e48d65c22d6da6b6b82242586f15">integral_snap_squared</a></div><div class="ttdeci">MatrixXd integral_snap_squared(int poly_order)</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8cpp_source.html#l00829">PolyTrajGen.cpp:829</a></div></div>
<div class="ttc" id="struct_q_p__form_html_a5613317ae662dd137324ee52ca52b1ae"><div class="ttname"><a href="struct_q_p__form.html#a5613317ae662dd137324ee52ca52b1ae">QP_form::Q</a></div><div class="ttdeci">MatrixXd Q</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00090">PolyTrajGen.h:90</a></div></div>
<div class="ttc" id="_poly_traj_gen_8h_html_a37d0493e73d8ef72a2405596ad6cee0c"><div class="ttname"><a href="_poly_traj_gen_8h.html#a37d0493e73d8ef72a2405596ad6cee0c">TimeSeries</a></div><div class="ttdeci">VectorXd TimeSeries</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00030">PolyTrajGen.h:30</a></div></div>
<div class="ttc" id="class_path_planner_html_a36d08d3831066c76be5195ed99fa1f68"><div class="ttname"><a href="class_path_planner.html#a36d08d3831066c76be5195ed99fa1f68">PathPlanner::get_path</a></div><div class="ttdeci">nav_msgs::Path get_path()</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00127">PolyTrajGen.h:127</a></div></div>
<div class="ttc" id="class_poly_spline_html"><div class="ttname"><a href="class_poly_spline.html">PolySpline</a></div><div class="ttdef"><b>Definition:</b> <a href="_poly_spline_8js_source.html#l00018">PolySpline.js:18</a></div></div>
<div class="ttc" id="struct_q_p__form_html_afeb66f78f73f929e99f6f8afcfcc17b1"><div class="ttname"><a href="struct_q_p__form.html#afeb66f78f73f929e99f6f8afcfcc17b1">QP_form::A</a></div><div class="ttdeci">MatrixXd A</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00092">PolyTrajGen.h:92</a></div></div>
<div class="ttc" id="struct_traj_gen_opts_html_ad4725655d38467206ed000eacfd6c54a"><div class="ttname"><a href="struct_traj_gen_opts.html#ad4725655d38467206ed000eacfd6c54a">TrajGenOpts::is_single_corridor</a></div><div class="ttdeci">bool is_single_corridor</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00070">PolyTrajGen.h:70</a></div></div>
<div class="ttc" id="struct_constraint_html_ab22b0463922cee8c89b0443ed611d072"><div class="ttname"><a href="struct_constraint.html#ab22b0463922cee8c89b0443ed611d072">Constraint::b</a></div><div class="ttdeci">MatrixXd b</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00085">PolyTrajGen.h:85</a></div></div>
<div class="ttc" id="struct_traj_gen_opts_html_a7424679070ea7264f7c8b6df5461bdb9"><div class="ttname"><a href="struct_traj_gen_opts.html#a7424679070ea7264f7c8b6df5461bdb9">TrajGenOpts::w_d</a></div><div class="ttdeci">double w_d</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00068">PolyTrajGen.h:68</a></div></div>
<div class="ttc" id="structtraj__gen_1_1_poly_spline_x_y_z___html"><div class="ttname"><a href="structtraj__gen_1_1_poly_spline_x_y_z__.html">traj_gen::PolySplineXYZ_&lt; std::allocator&lt; void &gt; &gt;</a></div></div>
<div class="ttc" id="struct_q_p__form__xyz_html_a3a6e7a104ef31fda66007013ba3741f8"><div class="ttname"><a href="struct_q_p__form__xyz.html#a3a6e7a104ef31fda66007013ba3741f8">QP_form_xyz::x</a></div><div class="ttdeci">QP_form x</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00100">PolyTrajGen.h:100</a></div></div>
<div class="ttc" id="struct_traj_gen_opts_html_ad8937f645e1154dc52978bd6592ce836"><div class="ttname"><a href="struct_traj_gen_opts.html#ad8937f645e1154dc52978bd6592ce836">TrajGenOpts::objective_derivative</a></div><div class="ttdeci">int objective_derivative</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00065">PolyTrajGen.h:65</a></div></div>
<div class="ttc" id="struct_traj_gen_opts_html_a216fe9912362cc5e876f945112811c35"><div class="ttname"><a href="struct_traj_gen_opts.html#a216fe9912362cc5e876f945112811c35">TrajGenOpts::N_safe_pnts</a></div><div class="ttdeci">int N_safe_pnts</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00076">PolyTrajGen.h:76</a></div></div>
<div class="ttc" id="struct_traj_gen_opts_html_a5f27ab3f06720accfeaf88d44da2c5d6"><div class="ttname"><a href="struct_traj_gen_opts.html#a5f27ab3f06720accfeaf88d44da2c5d6">TrajGenOpts::is_waypoint_soft</a></div><div class="ttdeci">bool is_waypoint_soft</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00067">PolyTrajGen.h:67</a></div></div>
<div class="ttc" id="struct_traj_gen_opts_html_a538985230ef4a8cd7763c91d11bebbaf"><div class="ttname"><a href="struct_traj_gen_opts.html#a538985230ef4a8cd7763c91d11bebbaf">TrajGenOpts::poly_order</a></div><div class="ttdeci">int poly_order</div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00073">PolyTrajGen.h:73</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>
